home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chaos CD Blue
/
Chaos_CD_Blue__[1999].iso
/
erfa
/
koeln
/
rc5desevil.php3
< prev
next >
Wrap
Text File
|
1999-04-03
|
13KB
|
314 lines
index.htmlimages/chaos.gifindex.htmlimages/computer.jpegindex.htmlimages/club.gifindex.htmlimages/cologne.gifindex.html="webmaster@koeln.ccc.de">
<meta name="DC.Creator" content="webmaster@koeln.ccc.de">
<meta name="date" content="April 03 1999 22:05:26.">
<meta name="DC.Date" content="April 03 1999 22:05:26.">
<meta name="DC.Title" content="Warum distributed.net b÷se ist.">
<meta name="DC.Subject" content="Probleme, die mit der aktuellen Politik von
distributed.net zur Ver÷ffentlichung ihrer Clients entstehen">
<meta name="description" content="Fine Information delivered by the c4">
<meta name="DC.Description" content="Fine Information delivered by the c4">
<meta name="DC.Publisher" content="c4 - Chaos Computer Club Cologne">
<meta name="DC.Language" content="de">
<meta name="DC.Rights" content="(K) all Rights Reversed">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#5B69A6" VLINK="#5B69A6" ALINK="#00FF00">
<!-- Anfang Logo -->
<table width="100%">
<tr>
<td ALIGN=CENTER>
<a href="http://koeln.ccc.de/">
<img src="/images/chaos.gif" width="150" height="130" border="0"></a>
</td>
<td ALIGN=CENTER>
<a href="http://koeln.ccc.de/">
<img src="/images/computer.jpeg" width="150" height="130" border="0"></a>
</td>
<td ALIGN=CENTER>
<a href="http://koeln.ccc.de/">
<img src="/images/club.gif" width="150" height="130" border="0"></a>
</td>
<td ALIGN=CENTER>
<a href="http://koeln.ccc.de/">
<img src="/images/cologne.gif" width="150" height="130" border="0"></a>
</td>
</tr>
<tr>
<td CLASS=logo>Chaos</td>
<td CLASS=logo>Computer</td>
<td CLASS=logo>Club</td>
<td CLASS=logo>Cologne</td>
</tr>
</table>
<hr>
<!-- Ende Logo -->
<br><br>
<DIV CLASS="BODY">
<!-- start body -->
<p CLASS="info">
Fast alle Hacker weltweit machen begeistert bei dem Projekt
distributed.net mit. Ich denke wir sollten uns eine kritischere
Einstellung zu diesem Projekt aneignen.
</p>
<h1>Das distributed.net Projekt</h1>
<p>
<a href="/go/http://www.distributed.net">distributed.net</a> ist eine
Aktion, um zu beweisen, da▀ die heute eingesetzten
Verschlⁿsselungsverfahren unsicher sind. PrimΣr wendet sich
distributed.net gegen die Algorithmen DES und RC5. Der Beweis, das
diese Verschlⁿsselungssysteme nicht hinreichend sicher ist, soll
dadurch erreicht werden, da▀ einzelne, mit DES bzw. RC5
verschlⁿsselte Nachrichten, entschlⁿsselt werden. Dies geschieht,
indem einfach alle Schlⁿssel durchprobiert werden, bis beim
entschlⁿsseln eine sinnvolle Nachricht herauskommt. Ein nicht
sonderlich intelligentes Verfahren, aber vermutlich bei einigen
Verschlⁿsselungsalgorithmen die einzige M÷glichkeit, an den Inhalt
einer verschlⁿsselten Nachricht zu kommen.
</p>
<p>
Da ein einzelner Rechner sehr lange brauchen wⁿrde, um alle
Schlⁿssel durchzuprobierten, mⁿssen mehrere Rechner sich die
Arbeit teilen. Und da es sich um sehr viel Arbeit handelt, mⁿssen
sich sehr viele Rechner die Arbeit teilen. Um diese
Arbeitsteilung m÷glichst komfortabel zu machen, hat
distributed.net eine Software entwickelt, die oft als
<em>rc5des</em> bezeichnet wird.
</p>
<p>
Im groben sieht das Prinzip dieser Software so aus: Jeder, der
teilnehmen will installiert eine sogenannte Client-Software auf
seinem Computer. Dieser <a
href="/go/http://distributed.net/clients.html">rc5des Client</a> ist
fⁿr sehr viele unterschiedliche Computer und Betriebssysteme
erhΣltlich. Der Client verbindet sich dann zu einem <a
href="http://distributed.net/rc5/proxyinfo.html">distributed.net
Server</a> und meldet sich zum Arbeitsantritt. Er bekommt dann
einen Block Schlⁿssel zugeteilt, die er auszuprobieren hat. Der
Client probiert dann die im zugewiesenen Schlⁿssel durch, was
einige Minuten bis viele Stunden dauern kann. Dabei lΣuft er im
Hintergrund mit niedriger PrioritΣt, so da▀ er die normale Arbeit
an dem Computer, auf dem er lΣuft, kaum behindert. Praktisch
arbeitet er nur, wenn der Computer nichts anderes zu tun hat. Den
Windows Client kann man sogar so konfigurieren, da▀ man nicht
sehen kann, da▀ er lΣuft.
</p>
<p>
Wenn der Client mit seinem Block Schlⁿssel durch ist, meldet er
sich wieder bei einem der distributed.net Server, sagt da▀ er
fertig ist und fordert einen neuen Schlⁿsselblock an. Um die
Verbindung zum Server auch aus stark gesicherten Netzwerken zu
erm÷glichen, verfⁿgt der rc5des Client zum einen ⁿber die
M÷glichkeit die Daten ⁿber allerlei esoterische Wege an Firewalls
vorbeizutunneln, zum anderen gibt es einen Proxyserver, mit dem
man auch an Firewalls und privaten IP-Adressbereichen vorbei
arbeiten kann.
</p>
<p>
Was distributed.net da macht ist also ganz sch÷n spannend: Die eh
nicht genutzte Rechenzeit auf tausenden Rechnern weltweit fⁿr
einen guten Zweck einsetzen. <em>Meta-Computing</em> wird das
ganze auch genannt. Eins ihrer Mottos ist "Cryptographie sicherer
machen, indem man sie bricht". Dadurch, da▀ bewiesen wird, da▀
manch Verschlⁿsselungssysteme gebrochen werden k÷nnen, hoffen
sie, die Industrie dazu zu bewegen, nur noch sicherere Algorithmen
einzusetzen.
</p>
<h1>Probleme mit distributed.net</h1>
<p>
Also alles sch÷n und gut? Nein, meiner Meinung nach ist
distributed.net b÷se. Die Ziele, die distributed.net anstrebt sind
sicher ehrenwert, aber die Methode die sie dazu anwenden ist
falsch. Und das falsche lΣ▀t sich in einem Satz zusammenfassen:
<b>Die Software ist nicht im Quelltext erhΣltlich.</b>
</p>
<p>
Warum das ein Problem sein soll? Jedem, der sich nochmal die
Features des rc5des Clients oben ansieht, sollte klar sein warum
das so ist. Da wird verlangt eine Software zu installieren, die
mit irgendwelchen Servern im Internet kommuniziert und dabei in der
Lage ist, an den meisten Firewalls und anderen Sicherheitssystemen
vorbei Daten zu ⁿbertragen. Diese Software ist obendrein auch noch
in der Lage, sich zumindest unter Windows einigerma▀en
wirkungsvoll vor dem Benutzer zu verstecken.<br> Und eine solche
Software soll man installieren, ohne den Quellcode zu haben, um
nachzuschauen, was dieses Programm <em>wirklich</em> macht?
</p>
<p>
M÷glich wΣre doch beispielsweise, das das Programm ungefragt und
unentdeckt Informationen aus dem eigenen Computer
herausschafft. Oder auch schlichtweg, da▀ es bei der Angabe, wer
da rechnet manchmal etwas pfuscht. Schlie▀lich gibt es einen
bedeutenden Geldpreis fⁿr den, der den richtigen Schlⁿssel
findet. Woher soll ich wissen, da▀ das Programm sich bei mir
meldet und den Schlⁿssel nicht einfach klammheimlich
'rausschmuggelt und ich nichts von dem Gewinn abbekomme.<br> Und
selbst wenn man davon ausgeht, das die Programmierer von rc5des
integere Menschen sind, wer stellt sicher, da▀ sie keine Fehler
bei der Programmierung gemacht haben, die dazu fⁿhren, da▀ der
rc5des Client von dritten zu irgendwelchen b÷sen Zwecken
eingesetzt wird?
</p>
<h1>Obskures SicherheitsverstΣndnis</h1>
<p>
Warum gibt distributed.net den Quellcode fⁿr ihren Client nicht
heraus? Erstaunlicherweise wird das mit "der Sicherheit" <a
href="/go/http://lists.distributed.net/hypermail/rc5.Dec1998/0006.html">
begrⁿndet</a>. Wenn jeder den Quellcode fⁿr den rc5des Client
hΣtte, k÷nnten b÷se Menschen rc5des so modifizieren, da▀ er gar
nicht die ihm zugeteilten Schlⁿssel ausprobieren wⁿrde, sondern sie
einfach als ausprobiert zurⁿckmelden wⁿrde, ohne lange
'rumzurechnen. Das wⁿrde natⁿrlich wesentlich schneller gehen, so
dieser b÷se Mensch in der Statistik wesentlich weiter oben
erscheinen wⁿrde. Er hΣtte allerdings nie die Chance zu gewinnen,
da er ja nicht den richtigen Schlⁿssel finden kann, weil er gar
nicht ⁿberprⁿft, ob unter den ihm zugeteilten Schlⁿsseln der
richtige ist.<br> Das ganze k÷nnte den Erfolg von distributed.net
empfindlich gefΣhrden, denn es wΣre theoretisch m÷glich, da▀
zufΣllig in den dem Betrⁿger zugeteilten Bl÷cken der richtige
Schlⁿssel lag. Da dieser die Schlⁿssel ja nicht ausprobiert,
sondern sie einfach so als fertig zurⁿckmeldet, wⁿrden sie in der
distributed.net Datenbank als erfolglos getestet vermerkt und
somit nicht weiter ⁿberprⁿft. Somit hΣtte distributed.net keine
Chance, die richtigen Schlⁿssel zu finden.
</p>
<p>
Die ─ngste, die bei distributed.net vorhanden sind, klingen
zunΣchst plausibel und doch sind sie meiner Meinung nach b÷se. Sie
sind derartig naiv und f÷rdern eine ungemein falsche Denkweise,
da▀ man sie nur als b÷se bezeichnen kann.
</p>
<p>
Warum? Die Denke der distributed.net Leute beruht auf der der
Annahme, es gΣbe "<b>Security by Obscurity</b>". Sie denken, wenn
sie das ganze nur undurchschaubar genug machen, in dem sie den
Quellcode nicht herausgeben, wⁿrde das ganze sicher werden.
Dies ist ein auch in der Industrie sehr verbreiteter
Irrglaube. Und dieser Irrglaube ist b÷se, weil er zunΣchst so
ungemein einleuchtend klingen kann und daher schon sehr viel
Schaden angerichtet hat. Denn praktisch bietet dieser Ansatz kaum
zusΣtzliche Sicherheit.
</p>
<p>
Die Hackercommunity verbringt sehr viel Zeit und Nerven darauf,
der Industrie beizubringen, da▀ sie offene Modelle nutzen mu▀,
wenn sie wirklich sichere Produkte erstellen will. ▄ber die
letzten Jahre haben wir auf diesem Gebiet schrittweise Erfolge
erzielen k÷nnen.
</p>
<p>
Und jetzt gibt es da eine Gruppe daher, die beweisen will, da▀ man
bessere Verschlⁿsselung nutzen mu▀ und dabei ihren eigenen Code
durch "Security by Obscurity" zu schⁿtzen versucht. Das wirft
unser Bemⁿhen, dieses windige Sicherheitskonzept ein fⁿr alle mal
zurⁿckzudrΣngen ein ganzes Stⁿck zurⁿck.
</p>
<h1>Pfuschen auch ohne Quellcode</h1>
<p>
Das der rc5des Client ohne Quellcode nicht wesentlich sicherer
ist, als mit Quellcode, ist ein gutes Beispiel, wie "Security by
Obscurity" versagt. Wenn er den Quellcode hΣtte, k÷nnte ein
Schuft diesen so modifizieren, da▀ nicht wirklich irgendwelche
Keybl÷cke berechnet werden, sondern diese einfach so als fertig
gemeldet werden (s.o.). Dafⁿr mⁿ▀te er allerdings in der Lage
sein, den hoch optimierten Code des rc5des Clients zu verstehen.
</p>
<p>
Was fⁿr M÷glichkeiten bleiben einem Schuft, wenn er nicht den
Quellcode besitzt? Er kann die Buffer-files, in denen rc5des seine
Daten speichert, analysieren und dann zu seinen Gunsten
modifizieren. Er k÷nnte auch das Protokoll, ⁿber das der rc5des
Client mit dem Server kommuniziert, analysieren und dann ein
Programm schreiben, welches sich dem Server gegenⁿber als normaler
Client tarnen, ohne jemals etwas zu berechnen.
</p>
<p>
Was fⁿr unseren Schuft aber sicher am leichtesten wΣre, ist es, den
rc5des Client so zu patchen, da▀ er einfach nicht mehr rechnet,
sondern nur Bl÷cke als fertig meldet. Um dies zu erreichen mu▀ er
nur eine einzige Assembler-Anweisung patchen, nΣmlich die Schleife
um die DES-Berechnung. Diese ist aufgrund des stark optimierten
Codes in rc5des besonders einfach unter dem Debugger
auszumachen. Fⁿr jeden, der sich schon mal ernsthaft an fremdem
Code 'rumgepatcht hat, sollte das wirklich kein Problem sein.
</p>
<p>
Im <a href="http://koeln.ccc.de/">c4</a> ist es uns in kⁿrzester
Zeit gelungen, diesen Patch durchzufⁿhren. Wenn wir das k÷nnen,
k÷nnen andere das auch. Es zeigt sich also, da▀ der rc5des Client
auch ohne Quellcode ungemein anfΣllig gegen Manipulationen ist.
Das Sicherheitsargument fⁿr die Nichtfreigabe des Quellcodes zieht
also nicht.
</p>
<h1>Was tun?</h1>
<p>
Mit diesem Sachverhalt ist nicht einfach umzugehen. Generell sind
die Ziele von distributed.net ja durchaus unterstⁿtzenswert. Soll
man jetzt keine rc5des Clients mehr laufen lassen? <br> Ich denke,
das Ziel darf nicht der Abbruch des distributed.net Projekts sein,
sondern die Freigabe des Quellcodes. Um dies zu erreichen sollte
man auf die ZugΣnglichkeit von distributed.net fⁿr rationale
Argumente hoffen. Es bleibt nur zu hoffen, da▀ man nicht den
einen Pfusch-Patch fⁿr rc5des als Argumentationshilfe freigeben
mu▀.
</p>
<p>
Ich kann somit jeden, der einen rc5des Client betreibt, empfehlen,
bei distributed.net den Quellcode einzufordern. For the sake of
the code.
</p>
<p>
Doobee R. Tzeck
</p>
<!-- end body -->
</DIV>
<hr>
<table width="100%">
<tr>
<td>
(K) 1999 c4 - All Rights reversed
</td>
<td align="right">
<address>
<a href="mailto:drt@koeln.ccc.de">webmaster@koeln.ccc.de
</a>
</address>
</td>
</tr>
</table>
</BODY>
</HTML>
<!-- Last modified: March 15 1999 01:00:55.-->